1. Field of the Invention
The present invention generally relates to communication networks. More specifically, the present invention relates to techniques and systems to avoid congestion in a network.
2. Related Art
Network congestion is usually a consequence of nonexistent or inadequate flow controls below the transport protocol layer in conjunction with dynamic traffic bursts that oversubscribe underlying memories and queues. The lack of flow control is usually accepted as the status quo for several reasons. First, congestion mitigation at the transport layer can be reasonably effective for certain types of connections. Second, small networks with well-behaved traffic patterns may not experience congestion. Third, popular datalink layer protocols (e.g., Ethernet) and network layer protocols (e.g., Internet Protocol) are connectionless. Hence, it can be difficult to implement anything but coarse-grained flow control using such protocols. Fourth, the typical networking stack does not provide a control path between low-layer queues and higher-layer flow control entities.
Conventional techniques usually do not prevent or control congestion onset. Instead, they typically reduce the offered load from hosts by responding after congestion loss has occurred. Conventional techniques are usually based on the following concept: if hosts reduce their load by a sufficient amount when congestion is detected (or suspected), the sum of their loads at congestion points will decrease, thereby mitigating congestion. These conventional techniques were typically developed to keep the network core as simple as possible while pushing adaptation techniques to the endpoints of the network.
Unfortunately, conventional techniques for combating congestion are not effective in many emerging network applications such as latency-sensitive applications and large-scale distributed applications. Specifically, latency-sensitive applications pay a penalty (e.g., increased and/or variable latency) when conventional techniques are used to mitigate congestion. Further, large-scale distributed applications have bursty traffic loads that are difficult, and sometimes impossible, to mitigate with after-the-event response techniques. Observations within contemporary datacenter networks suggest that congestion loss caused by rapid traffic bursts may be an increasing problem as distributed applications continue to grow and mature.